# 导入必要的模块
from http.server import HTTPServer, BaseHTTPRequestHandler


# 定义多路径处理器类
class MultiPathHandler(BaseHTTPRequestHandler):
    # 处理GET请求的方法
    def do_GET(self):
        # 根据请求路径分发到不同的处理方法
        if self.path == "/":
            # 处理首页请求
            self.handle_homepage()
        elif self.path == "/about":
            # 处理关于页面请求
            self.handle_about()
        else:
            # 处理404页面请求
            self.handle_not_found()

    # 处理首页的方法
    def handle_homepage(self):
        # 发送HTTP 200状态码
        self.send_response(200)
        # 设置响应内容类型为HTML
        self.send_header("Content-type", "text/html")
        # 结束头部发送
        self.end_headers()

        # 首页HTML内容
        html_content = """
        <html>
        <head><title>首页</title> <meta charset="UTF-8"></head>
        <body>
            <h1>欢迎来到首页</h1>
            <p><a href="/about">关于我们</a></p>
        </body>
        </html>
        """

        # 将HTML内容编码并写入响应
        self.wfile.write(html_content.encode("utf-8"))

    # 处理关于页面的方法
    def handle_about(self):
        # 发送HTTP 200状态码
        self.send_response(200)
        # 设置响应内容类型为HTML
        self.send_header("Content-type", "text/html")
        # 结束头部发送
        self.end_headers()

        # 关于页面HTML内容
        html_content = """
        <html>
        <head><title>关于我们</title> <meta charset="UTF-8"></head>
        <body>
            <h1>关于我们</h1>
            <p>这是一个使用Python http.server模块创建的简单网站。</p>
            <p><a href="/">返回首页</a></p>
        </body>
        </html>
        """

        # 将HTML内容编码并写入响应
        self.wfile.write(html_content.encode("utf-8"))

    # 处理404页面的方法
    def handle_not_found(self):
        # 发送HTTP 404状态码
        self.send_response(404)
        # 设置响应内容类型为HTML
        self.send_header("Content-type", "text/html")
        # 结束头部发送
        self.end_headers()

        # 404页面HTML内容
        html_content = """
        <html>
        <head><title>页面未找到</title> <meta charset="UTF-8"></head>
        <body>
            <h1>404 - 页面未找到</h1>
            <p>抱歉，您请求的页面不存在。</p>
            <p><a href="/">返回首页</a></p>
        </body>
        </html>
        """

        # 将HTML内容编码并写入响应
        self.wfile.write(html_content.encode("utf-8"))


# 定义服务器地址和端口
server_address = ("", 8000)
# 创建HTTP服务器实例
httpd = HTTPServer(server_address, MultiPathHandler)

# 打印服务器启动信息
print("多路径服务器运行在 http://localhost:8000")
# 启动服务器
httpd.serve_forever()
